home *** CD-ROM | disk | FTP | other *** search
/ The 640 MEG Shareware Studio 2 / The 640 Meg Shareware Studio CD-ROM Volume II (Data Express)(1993).ISO / sb / carr_mpl.zip / RSB3CARR.MOD < prev   
Text File  |  1992-06-14  |  3KB  |  73 lines

  1. 42005 ' $SUBTITLE: 'CheckCarrier - monitors carrier on comm. port'
  2. ' $PAGE
  3. '
  4. '  NAME    -- CheckCarrier
  5. '
  6. '  INPUTS  --     PARAMETER                    MEANING
  7. '              ZLocalUser = 0               REMOTE USER
  8. '              ZLocalUser = -1              LOCAL KEYBOARD USER
  9. '              ZModemStatusReg              ADDRESS OF THE COMMUNI-
  10. '                                           CATIONS PORT'S REGISTER
  11. '              ZSubParm = -9                DON'T WRITE TO CALLERS
  12. '              ZSubParm = -10               SAME AS -9, BUT DON'T
  13. '                                           DELAY
  14. '
  15. '  OUTPUTS --  ZSubParm = 0                 Carrier STILL PRESENT
  16. '              ZSubParm = -1                Carrier NOT PRESENT
  17. '
  18. '  PURPOSE --  To test if carrier is present (i.e. the user
  19. '              is still on line).  Ignores whether in autologoff.
  20. '
  21.       SUB CheckCarrier STATIC
  22.       IF ZSubParm = -1 THEN _
  23.          EXIT SUB
  24.       Speedy = ZSubParm
  25.       ZSubParm = 0
  26. '
  27. '
  28. ' * TEST FOR Carrier PRESENT (DROP CALLER IF Carrier NOT PRESENT)
  29. '
  30. '
  31.       IF ZLocalUser THEN _
  32.          EXIT SUB
  33.       IF ZFossil THEN _
  34.          CALL FosStatus(ZComPort,Status) : _
  35.          Status = Status AND &H0080 : _
  36.          IF Status = &H0080 THEN _
  37.             EXIT SUB _
  38.          ELSE GOTO 42015
  39. 42010 IF INP(ZModemStatusReg) > 127 THEN _
  40.          EXIT SUB
  41. '
  42. '
  43. ' * IN CASE USER IS 2400 BAUD, PAUSE A SECOND AND CHECK AGAIN FOR Carrier
  44. ' * DETECT.  SOME 2400 BAUD MODEMS TAKE A WHILE TO SYNCHRONIZE THE Carrier,
  45. ' * HENCE A THREE-SECOND PAUSE BEFORE CHECKING AGAIN.
  46. '
  47. '
  48. 42015 IF Speedy = -10 THEN _
  49.          GOTO 42020
  50.       CALL DelayTime (ZModemInitWaitTime)
  51.       IF ZFossil THEN _
  52.          CALL FosStatus(ZComPort,Status) : _
  53.          Status = Status AND &H0080 : _
  54.          IF Status = &H0080 THEN _
  55.             EXIT SUB _
  56.          ELSE GOTO 42020
  57.       IF INP(ZModemStatusReg) > 127 THEN _
  58.          EXIT SUB
  59. 42020 ZSubParm = -1
  60.       IF Speedy < -8 THEN _
  61.          EXIT SUB
  62.       IF AlreadyWritten = -9 THEN _
  63.          EXIT SUB
  64.       CALL TakeOffHook
  65.       ZModemOffHook = -1
  66.       AlreadyWritten = -9
  67.       CALL UpdtCalr ("Carrier dropped",1)
  68.       IF ZActiveUserName$ = "" THEN _                                ' DD060101
  69.          EXIT SUB                                                    ' DD060101
  70.       CALL DoorInfo                                                  ' DD060101
  71.       CALL ShellExit ("CARRIER.BAT")                                 ' DD060101
  72.       END SUB
  73.